package com.woniuxy.service.impl;

import com.woniuxy.dao.CourseDao;
import com.woniuxy.entity.Course;
import com.woniuxy.entity.ResponseEntity;
import com.woniuxy.service.CourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * <p>Course的service实现类<p>
 *
 * @author LSL
 * @date 2022/5/31 12:41
 */
@Service
public class CourseServiceImpl implements CourseService {
    @Autowired(required = false)
    private CourseDao courseDao;
//    查询所有 有层级关系
    @Override
    public ResponseEntity findAllCourse() {
        List<Course> allCourse = courseDao.findAllCourse();
        return new ResponseEntity((allCourse));
    }

    //    查询所有课程 没有层级关系
    @Override
    public ResponseEntity findAll() {
//      查询数据库得到有层级关系的结果
        List<Course> allCourse = courseDao.findAllCourse();
//        这个集合装 去除层级后的题库
        List<Course> newAllCourse = new ArrayList<>();
//      去除层级关系
        for (Course course : allCourse) {
            List<Course> children = course.getChildren();
//            获取父级题库名称
            String fName = course.getCourse();
            for (Course child : children) {
                child.setfName(fName);
                newAllCourse.add(child);
            }
            course.setChildren(null);
            course.setfName("这是顶级题库");
            newAllCourse.add(course);
        }
        return new ResponseEntity(newAllCourse);
    }

//    批量删除
    @Override
    public ResponseEntity batchDelete(int[] courseIdList) {
        int i;
        for (int id : courseIdList) {
            i = courseDao.deleteOneById(id);
            if(i!=1){
                return ResponseEntity.ERROR;
            }
        }
        return ResponseEntity.SUCCESS;

    }

//	根据id删除一个
    @Override
    public ResponseEntity deleteOneById(int id) {
        int i = courseDao.deleteOneById(id);
        if(i == 1){
            return ResponseEntity.SUCCESS;
        }else{
            return ResponseEntity.ERROR;
        }
    }

//根据name查找
    @Override
    public ResponseEntity findCourseByName(Map<String, String> course) {
        return courseDao.findCourseByName(course);
    }
    public ResponseEntity findCourseByTopicId(int id) {
        return courseDao.findCourseByTopicId(id);
    }


}
